# 可以使用for in迭代的对象，称之为可迭代对象
from collections.abc import Iterable,Iterator
def isIterator(arg):
    print(isinstance(arg,Iterator))# 是否是迭代器    
a = (x for x in range(1,10) if x % 2 == 0)
b = ("str","hello wor")
print(isinstance(b,Iterable)) # 判断是否是可迭代的(iterable)

for x in b:
    for a in x:
        print(a,end=" ")

# 如果对象可以被next函数调用，这个对象称之为迭代器(iterator)
print("------------------------------------------")
a = (x for x in range(1,10) if x % 2 == 0)

print(isinstance(a,Iterator))# 是否是迭代器

# 如果一个对象是Iterator，那么就说明这个对象是数据流，长度是不确定的。
# 迭代器对象出现的目的就是为了节省空间



print("------------------------------------------")

b = [1,43,43]
c = {"a":'b',"c":'d'}
d = "ssss"
# 将list，dict，str变成迭代器对象
isIterator(b)
isIterator(iter(b))
isIterator(c)
isIterator(iter(c))
isIterator(d)
isIterator(iter(d))


